home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 76 / XENIATGM66.iso / Indiana Jones / Indiana Jones.exe / RESOURCE / PREVIEW.GOB / cog_gen_generator.cog < prev    next >
Text File  |  1999-11-15  |  3KB  |  98 lines

  1. # Jones 3D Cog Script
  2. #
  3. # 00_GENERATOR.COG
  4. #
  5. # Generic Dark Forces like enemy generator.
  6. #
  7. # [YB]
  8. #
  9. # 8/29 - RKD, added trapdoor, in case generator doesn't appear on certain difficulties
  10. #
  11. # (C) 1997 LucasArts Entertainment Co. All Rights Reserved
  12.  
  13.  
  14. symbols
  15.  
  16. thing            generator_pos                            desc=generator_ghost
  17. thing            player        local
  18. template        enemy_tpl                                desc=enemy_to_generate
  19. flex            initial_delay=300.0                    desc=initial_delay
  20. flex            generate_delay=30.0                    desc=generate_delay
  21. int            generate_num=5                            desc=generate_number
  22. int            max_alive=3                                desc=max_alive
  23. flex            min_dist=0.0                            desc=min_dist
  24. flex            max_dist=1000.0                        desc=max_dist
  25.  
  26. int            enemy                                        local
  27. int            cur_num=0                                local
  28. int            cur_alive=0                                local
  29. flex            distance=0.0                            local
  30.  
  31. message        startup
  32. message        user0
  33. message        timer
  34. message        pulse
  35. message        killed                                    mask=0xfff
  36.  
  37. end
  38.  
  39. ## Code Section
  40.  
  41. code
  42.  
  43. //-------------------------------------------------------------------------------------------------
  44.  
  45. startup:
  46.     // if initial_delay == -1 then the generator will be started by SendMessage
  47.     // user0 from another COG. Much like the WAKEUP message in DF...
  48.     if (generator_pos == -1) return;    // if generator doesn't appear on this difficulty, quit
  49.     
  50.     if(initial_delay != -1) SetTimer(initial_delay);
  51.  
  52.     Return;
  53.  
  54. //-------------------------------------------------------------------------------------------------
  55.  
  56. user0:    
  57.  
  58. //-------------------------------------------------------------------------------------------------
  59.  
  60. timer:
  61.     SetPulse(generate_delay);
  62.  
  63. //-------------------------------------------------------------------------------------------------
  64.  
  65. pulse:
  66.     if((cur_alive < max_alive))
  67.     {
  68.         distance = VectorDist(GetThingPos(generator_pos), GetThingPos(GetLocalPlayerThing()));
  69.         if((distance >= min_dist) && (distance <= max_dist))
  70.         {
  71.             if(!HasLOS(player, generator_pos))
  72.             {
  73.                 enemy = CreateThing(enemy_tpl, generator_pos);
  74.                 CaptureThing(enemy);
  75.  
  76.                 cur_num   = cur_num + 1;
  77.                 cur_alive = cur_alive + 1;
  78.  
  79.                 // If we have generated enough enemies, end the pulse
  80.                 if(cur_num >= generate_num) SetPulse(0);
  81.             }
  82.         }
  83.     }
  84.  
  85.     Return;
  86.  
  87. //------------------------------------------------------------------------------------------------
  88.  
  89. killed:
  90.     // Note that this script is generic, so generated enemies won't drop powerups.
  91.     // If dropped powerups are necessary, one script per enemy must be done...
  92.     cur_alive = cur_alive - 1;
  93.  
  94.     Return;
  95.  
  96. end
  97.  
  98.